package com.eagledata.project.business.banner.service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.eagledata.common.constant.DictTypeConstans;
import com.eagledata.common.utils.StringUtil;
import com.eagledata.common.utils.security.ShiroUtils;
import com.eagledata.framework.config.EagleDataConfig;
import com.eagledata.project.business.banner.domain.Banner;
import com.eagledata.project.business.banner.mapper.BannerMapper;
import com.eagledata.project.system.dict.cache.DictCacheManager;

/**
 * 轮播图 服务层实现
 * 
 * @author ruoyi
 * @date 2018-06-22
 */
@Service
public class BannerServiceImpl implements IBannerService {
	@Autowired
	private BannerMapper bannerMapper;

	/**
	 * 查询轮播图信息
	 * 
	 * @param id
	 *            轮播图ID
	 * @return 轮播图信息
	 */
	@Override
	public Banner selectBannerById(Integer id) {
		return bannerMapper.selectBannerById(id);
	}

	/**
	 * 查询轮播图列表
	 * 
	 * @param banner
	 *            轮播图信息
	 * @return 轮播图集合
	 */
	@Override
	public List<Banner> selectBannerList(Banner banner) {
		List<Banner> datas = bannerMapper.selectBannerList(banner);
		List<Banner> resultDatas = new ArrayList<>();
		Map<String, String> disctMap = DictCacheManager.getInstance().getDictData(DictTypeConstans.M_BANNER_TYPE);
		for (Banner data : datas) {
			String imageUrl = StringUtils.join(EagleDataConfig.getBaseImgUrl(), data.getBannerUrl());
			data.setBannerUrl(imageUrl);
			data.setBannerType(disctMap.get(data.getBannerType()));
			resultDatas.add(data);
		}	
		return resultDatas;
	}

	/**
	 * 新增轮播图
	 * 
	 * @param banner
	 *            轮播图信息
	 * @return 结果
	 */
	@Override
	public int insertBanner(Banner banner) {
		return bannerMapper.insertBanner(banner);
	}

	/**
	 * 修改轮播图
	 * 
	 * @param banner
	 *            轮播图信息
	 * @return 结果
	 */
	@Override
	public int updateBanner(Banner banner) {
		return bannerMapper.updateBanner(banner);
	}

	/**
	 * 保存轮播图
	 * 
	 * @param banner
	 *            轮播图信息
	 * @return 结果
	 */
	@Override
	public int saveBanner(Banner banner) {
		Integer id = banner.getId();
		int rows = 0;
		banner.setCreateBy(ShiroUtils.getLoginName());
		if (StringUtil.isNotNull(id)) {
			rows = bannerMapper.updateBanner(banner);
		} else {
			rows = bannerMapper.insertBanner(banner);
		}
		return rows;
	}

	/**
	 * 删除轮播图信息
	 * 
	 * @param id
	 *            轮播图ID
	 * @return 结果
	 */
	@Override
	public int deleteBannerById(Integer id) {
		return bannerMapper.deleteBannerById(id);
	}

	/**
	 * 批量删除轮播图对象
	 * 
	 * @param ids
	 *            需要删除的数据ID
	 * @return 结果
	 */
	@Override
	public int batchDeleteBanner(Integer[] ids) {
		return bannerMapper.batchDeleteBanner(ids);
	}

}
